<!DOCTYPE html>
<title>CSS Grid: track sizing algo with size restrictions and intrinsic sizes.</title>
<link rel="author" title="Sergio Villar" href="mailto:svillar@igalia.com"/>
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#layout-algorithm"/>
<meta name="assert" content="This test ensures that fr tracks are properly sized whenever grid has intrinsic sizes."/>
<link rel="issue" href="https://crbug.com/423743"/>
<link href="/css/support/width-keyword-classes.css" rel="stylesheet"/>
<link href="/css/support/height-keyword-classes.css" rel="stylesheet"/>
<link href="/css/support/grid.css" rel="stylesheet"/>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />

<style>
.container {
    width: 100px;
    height: 100px;
}

.grid {
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
}

div { font: 10px/1 Ahem; }
</style>

<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<script type="text/javascript">
  setup({ explicit_done: true });
</script>

<body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })">

<div class="container">
  <div class="grid" data-expected-width="100" data-expected-height="10">
    <div>XXX XXX</div>
  </div>
</div>

<div class="container">
  <div class="grid min-content" data-expected-width="30" data-expected-height="20">
    <div>XXX XXX</div>
  </div>
</div>

<div class="container">
  <div class="grid min-content" data-expected-width="30" data-expected-height="20" style="grid-template-columns:minmax(0, 1fr);">
    <div>XXX XXX</div>
  </div>
</div>

<div class="container">
  <div class="grid max-content" data-expected-width="70" data-expected-height="10">
    <div>XXX XXX</div>
  </div>
</div>

<div class="container">
  <div class="grid fit-content" data-expected-width="70" data-expected-height="10">
    <div>XXX XXX</div>
  </div>
</div>

<div class="min-content">
    <div class="grid" data-expected-width="40" data-expected-height="50">
        <div>XXX XXXX XX X XX XXX</div>
    </div>
</div>

<div class="grid container" data-expected-width="100" data-expected-height="100">
    <div style="display: grid; grid-template-columns: 3fr; grid-template-rows: 2fr;" data-expected-width="100" data-expected-height="100">
        <div>XXX XXXX XX X XX XXX</div>
    </div>
</div>

<div class="grid" style="grid; grid: 1fr 2fr / 2fr 1fr; width: 300px; height: 300px;" data-expected-width="300" data-expected-height="300">
    <div class="firstRowFirstColumn" style="display: grid; grid: 1fr 3fr / 3fr 1fr;" data-expected-width="200" data-expected-height="100">
        <div style="border: 2px solid magenta;" data-expected-width="150" data-expected-height="25">XXXX</div>
        <div class="secondRowSecondColumn" style="border: 2px solid cyan;" data-expected-width="50" data-expected-height="75">XXXX XX XX</div>
    </div>
    <div class="secondRowSecondColumn" style="display: grid; grid: 3fr 4fr / 4fr 3fr;" data-expected-width="100" data-expected-height="200">
        <div style="border: 2px solid lime;" data-expected-width="56" data-expected-height="86">XXX XX X</div>
        <div class="secondRowSecondColumn" style="border: 2px solid navy;" data-expected-width="44" data-expected-height="114">XXXX XXX XXXX XXX XXXX</div>
    </div>
</div>

</body>
